Several high speed serial communication protocols such as Serial Attached Small Computer System Interface (SAS), USB, IEEE 1394, Fibre Channel, etc., use coding schemes to balance edge transitions and edge density in a stream of data. For example, several protocols, including SAS, use the popular 8b10b coding scheme, where 10-bit symbols represent 8-bit blocks of data and the extra bits in the transmitted 10-bit symbols are selected to balance the average of ones and zeroes transmitted over the link. This concept, known as Direct Current (DC) balance, improves bandwidth characteristics of the signal. The coding scheme also ensures a sufficient rate of transitions between one and zero on the line, enabling a receiver circuit to accurately recover bits in the stream at relatively high transmission rates.
Future updates to the SAS protocol seek to improve overall throughput. Due to the relatively high 20% overhead associated with the 8b/10b coding scheme, more efficient coding schemes that improve efficiency and data throughput are sought. However, it remains a design challenge to update communication protocols with new coding schemes while maintaining backwards compatibility with legacy devices. Moreover, more efficient coding schemes typically include longer run lengths that make it difficult to maintain and sufficient transition density on the transmission line and DC balance. Current protocols also lack advanced Serializer/Deserializer (SerDes) features such as continuous adaptation on the link and full randomization of the bit stream.